package com.simulation.web.mapper;

import com.simulation.web.domain.TechTasks;
import com.simulation.web.vo.TechTaskVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface TaskMapper {

    /**
     * 新建任务
     *
     * @param task 新建任务
     * @return 返回影响行数
     */
    int createTask(@Param("task") TechTasks task);

    /**
     * 更新任务状态
     *
     * @param id 任务ID
     * @param status 状态
     * @return 返回影响行数
     */
    int updateTaskStatus(@Param("id") Long id, @Param("status") String status);

    /**
     * 更新任务进度
     *
     * @param id 任务ID
     * @param progress 进度
     * @return 返回团队列表
     */
    int updateTaskProgress(@Param("id") Long id, @Param("progress") double progress);

    /**
     * 删除任务
     *
     * @param id 任务ID
     * @return 返回团队详情
     */
    int deleteTask(@Param("id") Long id);

    /**
     * 删除团队任务
     * @param teamId
     * @return
     */
    int deleteTaskByTeamId(@Param("teamId") Long teamId);

    /**
     * 根据用户查询任务
     *
     * @param createUserId 用户ID
     * @return 返回影响行数
     */
    List<TechTaskVO> getTasksByCreateUserId(@Param("createUserId") Long createUserId);

    /**
     * 查询任务详情
     * @param id
     * @return
     */
    TechTaskVO getTaskById(@Param("id") Long id, @Param("relatedType") String relatedType);

    /**
     *
     * @param id
     * @return
     */
    TechTaskVO getTaskDetailById(@Param("id") Long id);


    List<TechTaskVO> getTasksByTeamId(@Param("teamId") Long teamId);
}